package mercadologico.gui.produto.util;

import java.util.ArrayList;

import javax.swing.ComboBoxModel;
import javax.swing.event.ListDataListener;

import mercadologico.entities.tables.Produto;

@SuppressWarnings("rawtypes")
public class ProdutoPesquisaVariacaoCombobox implements ComboBoxModel {

	private ArrayList<Produto> produtos;
	private Produto produtoSelecionado;
	
	public Object getElementAt(int arg0) {
		if (getProdutos().size() > arg0) {
			return getProdutos().get(arg0);
		}
		return null;
	}
	public int getSize() {
		return getProdutos().size();
	}
	public Object getSelectedItem() {
		return getProdutoSelecionado();
	}
	public void setSelectedItem(Object anItem) {
		if (anItem instanceof Produto)
			setProdutoSelecionado((Produto) anItem);
		else
			setProdutoSelecionado(null);
	}
	public ArrayList<Produto> getProdutos() {
		if (produtos == null) {
			produtos = new ArrayList<Produto>();
		}
		return produtos;
	}
	public void setProdutos(ArrayList<Produto> produtos) {
		this.produtos = produtos;
	}
	public void addVarios(ArrayList<Produto> produtos) {
		for (Produto produto : produtos) {
			add(produto);
		}
	}
	public void excluiAll() {
		getProdutos().clear();
	}
	public void exclui(Produto produto) {
		getProdutos().remove(produto);
	}
	public void exclui(int index) {
		getProdutos().remove(index);
	}
	public void add(Produto produto) {
		getProdutos().add(produto);
	}
	public void add(int posicao, Produto produto) {
		getProdutos().add(posicao, produto);
	}
	public Produto getProdutoSelecionado() {
		return produtoSelecionado;
	}
	public void setProdutoSelecionado(Produto produtoSelecionado) {
		this.produtoSelecionado = produtoSelecionado;
	}
	public void addListDataListener(ListDataListener l) {

	}
	public void removeListDataListener(ListDataListener l) {
		// TODO Auto-generated method stub
	}
	public void excluiProdutosSimilares(ArrayList<Produto> produtos) {
		for (Produto produto : produtos) {
			exclui(produto.getProdutoSimilar());
		}
	}
}
